<!doctype html public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Yahoo! UI Library - Tree Control</title>
<link rel="stylesheet" type="text/css" href="css/screen.css">
<style type="text/css">
    .emLabel, .emLabel:link, .emLabel:visited, .emLabel:hover { 
        font-weight: bold;
    }
</style>
</head>
  
<body onload="treeInit()">

<link rel="stylesheet" type="text/css" href="css/menu/tree.css">

<div id="pageTitle">
	<h3>Tree Control</h3>
</div>

<script type="text/javascript" src="../../build/yahoo/yahoo.js" ></script>
<script type="text/javascript" src="../../build/event/event.js"></script>

<!-- The following are required for the logger -->
<script type="text/javascript" src="../../build/dom/dom.js"></script>
<script type="text/javascript" src="../../build/logger/logger.js"></script>
<!-- End logger reqs -->

<script type="text/javascript" src="../../build/treeview/treeview-debug.js" ></script>

<style type="text/css">

/* logger default styles */
/* font size is controlled here: default 77% */
#yui-log {position:absolute;top:1em;right:1em;font-size:77%;text-align:left;}
/* width is controlled here: default 31em */
.yui-log {background-color:#AAA;border:1px solid black;font-family:monospace;z-index:9000;}
.yui-log p {margin:1px;padding:.1em;}
.yui-log button {font-family:monospace;}
.yui-log .yui-log-hd {padding:.5em;background-color:#575757;color:#FFF;}
/* height is controlled here: default 20em*/
.yui-log .yui-log-bd {width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;}
.yui-log .yui-log-ft {margin-top:.5em;margin-bottom:1em;}
.yui-log .yui-log-ft .yui-log-categoryfilters {}
.yui-log .yui-log-ft .yui-log-sourcefilters {width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;}
.yui-log .yui-log-btns {position:relative;float:right;bottom:.25em;}
.yui-log .yui-log-filtergrp {margin-right:.5em;}
.yui-log .info {background-color:#A7CC25;} /* A7CC25 green */
.yui-log .warn {background-color:#F58516;} /* F58516 orange */
.yui-log .error {background-color:#E32F0B;} /* E32F0B red */
.yui-log .time {background-color:#A6C9D7;} /* A6C9D7 blue */
.yui-log .window {background-color:#F2E886;} /* F2E886 tan */

</style>


<div id="container">
<img class="ylogo" src="img/logo.gif" alt="" />
  <div id="containerTop">
    <div id="header">
      <h1>
      
      </h1>
      <h4>&nbsp;</h4>
    </div>
    <div id="main">

<div id="rightbar">

<div id="rightBarPad">
<h3>Examples</h3>

<div id="linkage">
<ul>
<li><a href="default.html?mode=dist">Default tree widget</a></li>
<li><a href="dynamic.html?mode=dist">Dynamic load</a></li>


<li><a href="folders.html?mode=dist">Folder view</a></li>
<li><a href="customicons.html?mode=dist">Custom icons</a></li>
<li><a href="menu.html?mode=dist">Menu</a></li>
<li><a href="html.html?mode=dist">HTML node</a></li>
<li><a href="multi.html?mode=dist">Multiple trees, different styles</a></li>
<li><a href="check.html?mode=dist">Task list</a></li>
<li><a href="anim.html?mode=dist">Fade animation</a></li>
</ul>

</div> 


    <script type="text/javascript">
    //<![CDATA[
    YAHOO.example.logApp = function() {
        var divId;
        return {
            init: function(p_divId, p_toggleElId, p_clearElId) {
                divId = p_divId
            },

            onload: function() {
                if (YAHOO.widget.Logger) {
                    var reader = new YAHOO.widget.LogReader( "logDiv", { height: "400px" } );
                    //reader._onClickPauseBtn(null, reader);
                }
            }
        };
    } (); 

    YAHOO.util.Event.on(window, "load", YAHOO.example.logApp.onload);

    //]]>
    </script>

    <div id="logDiv"></div>

    
</div>

</div>


  <div id="content">
    <form name="mainForm" action="javscript:;">
	<div class="newsItem">
	  <h3>Menu TreeView Widget</h3>
	  <p>
		The presentation differences between the default treeview widget and this
		one were accomplished by modifying the css styles in tree.css.  The
		functionality is the same, except the menu does not allow multiple siblings
		to be expanded at one time (when you expand a node, all of its expanded 
		siblings are collapsed.
	  </p>

	  <div id="expandcontractdiv">
		<a href="javascript:tree.expandAll()">Expand all</a>
		<a href="javascript:tree.collapseAll()">Collapse all</a>
	  </div>
	  <div id="treeDiv1"></div>

	</div>
	</form>
  </div>
	
      <div id="footerContainer">
        <div id="footer">
          <p>&nbsp;</p>
        </div>
      </div>
    </div>
  </div>
</div>


<script type="text/javascript">

	var tree;
	var nodes = new Array();
	var nodeIndex = 0;
	
	function treeInit() {
		buildRandomTextNodeTree();
	}

	function buildRandomTextNodeTree() {
		tree = new YAHOO.widget.TreeView("treeDiv1");
        tree.subscribe("labelClick", onLabelClick);

		for (var i = 0; i < Math.floor((Math.random()*4) + 3); i++) {
			var thisId = nodeIndex++;
			var thisLabel = "menu" + i;
			// nodes[thisId] = new YAHOO.widget.TextNode({ label: thisLabel }, tree.getRoot(), false);
			// nodes[thisId] = new YAHOO.widget.MenuNode({label:thisLabel, href:"http://asdf"}, tree.getRoot(), false);
			nodes[thisId] = new YAHOO.widget.MenuNode(thisLabel, tree.getRoot(), false);

			var p1 = nodes[thisId];
			var l1 = thisLabel;

			for (var j = 0; j < Math.floor(Math.random()*6) + 1; j++) { 
				thisId = nodeIndex++;
				thisLabel = l1 + "-" + j;
				// nodes[thisId] = new YAHOO.widget.TextNode({ label: thisLabel }, p1, true);
				nodes[thisId] = new YAHOO.widget.MenuNode(thisLabel, p1, false);

				var p2 = nodes[thisId];
				var l2 = thisLabel;

				for (var k =0; k < Math.floor(Math.random()*6) + 1; k++) { 
					thisId = nodeIndex++;
					thisLabel = l2 + "-" + k;

					//var data = {
							//id: thisId,
							//label: thisLabel, 
							//href: "javascript:onLabelClick(" + thisId + ")" 
						//};

					var data = {
							id: thisId,
							label: thisLabel
						};

					nodes[thisId] = new YAHOO.widget.TextNode(data, p2, false);
                    nodes[thisId].labelStyle = "emLabel";

					// nodes[thisId] = new YAHOO.widget.MenuNode(thisLabel, p2, false);
				}

			}

		}

		// nodes[0] = new YAHOO.widget.TextNode(tree.getRoot(), false, "label-0");
		tree.draw();
	}

	var selectedId = null;
	function onLabelClick(n1) {


        if (!n1.hasChildren()) {
            var el = n1.getLabelEl()

            YAHOO.log("pos: " + YAHOO.util.Dom.getXY(el));

            el.style.backgroundColor = "#c5dbfc";
            

            if (selectedId != null) {
                n2 = tree.getNodeByProperty("id", selectedId);
                n2.getLabelEl().style.backgroundColor = "white";
            }

            selectedId = n1.data.id;
        }
	}

</script>

  </body>
</html>
 
